home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / lsb-base-logging.sh < prev    next >
Text File  |  2008-03-10  |  4KB  |  176 lines

  1. # Default init script logging functions suitable for Ubuntu.
  2. # See /lib/lsb/init-functions for usage help.
  3.  
  4. log_use_usplash () {
  5.     if [ "${loop:-n}" = y ]; then
  6.         return 1
  7.     fi
  8.     type usplash_write >/dev/null 2>&1
  9. }
  10.  
  11. log_to_console () {
  12.     [ "${loop:-n}" != y ] || return 0
  13.     [ "${QUIET:-no}" != yes ] || return 0
  14.  
  15.     # Only output to the console when we're given /dev/null
  16.     stdin=`readlink /proc/self/fd/0`
  17.     [ "${stdin#/dev/null}" != "$stdin" ] || return 0
  18.  
  19.     func=$1
  20.     shift
  21.  
  22.     loop=y $func "$@" </dev/console >/dev/console 2>&1 || true
  23. }
  24.  
  25. log_success_msg () {
  26.     if log_use_usplash; then
  27.         usplash_write "STATUS $*" || true
  28.     fi
  29.  
  30.     log_to_console log_success_msg "$@"
  31.  
  32.     echo " * $@"
  33. }
  34.  
  35. log_failure_msg () {
  36.     if log_use_usplash; then
  37.         usplash_write "STATUS $*" || true
  38.     fi
  39.  
  40.     log_to_console log_failure_msg "$@"
  41.  
  42.     if log_use_fancy_output; then
  43.         RED=`$TPUT setaf 1`
  44.         NORMAL=`$TPUT op`
  45.         echo " $RED*$NORMAL $@"
  46.     else
  47.         echo " * $@"
  48.     fi
  49. }
  50.  
  51. log_warning_msg () {
  52.     if log_use_usplash; then
  53.         usplash_write "STATUS $*" || true
  54.     fi
  55.  
  56.     log_to_console log_warning_msg "$@"
  57.  
  58.     if log_use_fancy_output; then
  59.         YELLOW=`$TPUT setaf 3`
  60.         NORMAL=`$TPUT op`
  61.         echo " $YELLOW*$NORMAL $@"
  62.     else
  63.         echo " * $@"
  64.     fi
  65. }
  66.  
  67. log_begin_msg () {
  68.     log_daemon_msg "$1"
  69. }
  70.  
  71. log_daemon_msg () {
  72.     if [ -z "$1" ]; then
  73.         return 1
  74.     fi
  75.  
  76.     if log_use_usplash; then
  77.         usplash_write "TEXT $*" || true
  78.     fi
  79.  
  80.     log_to_console log_daemon_msg "$@"
  81.  
  82.     if log_use_fancy_output && $TPUT xenl >/dev/null 2>&1; then
  83.         COLS=`$TPUT cols`
  84.         if [ "$COLS" ] && [ "$COLS" -gt 6 ]; then
  85.             COL=`$EXPR $COLS - 7`
  86.         else
  87.         COLS=80
  88.             COL=73
  89.         fi
  90.         # We leave the cursor `hanging' about-to-wrap (see terminfo(5)
  91.         # xenl, which is approximately right). That way if the script
  92.         # prints anything then we will be on the next line and not
  93.         # overwrite part of the message.
  94.  
  95.         # Previous versions of this code attempted to colour-code the
  96.         # asterisk but this can't be done reliably because in practice
  97.         # init scripts sometimes print messages even when they succeed
  98.         # and we won't be able to reliably know where the colourful
  99.         # asterisk ought to go.
  100.  
  101.         printf " * $*       "
  102.         # Enough trailing spaces for ` [fail]' to fit in; if the message
  103.         # is too long it wraps here rather than later, which is what we
  104.         # want.
  105.         $TPUT hpa `$EXPR $COLS - 1`
  106.         printf ' '
  107.     else
  108.         echo " * $@"
  109.         COL=
  110.     fi
  111. }
  112.  
  113. log_progress_msg () {
  114.     :
  115. }
  116.  
  117. log_end_msg () {
  118.     if [ -z "$1" ]; then
  119.         return 1
  120.     fi
  121.  
  122.     if log_use_usplash; then
  123.         if [ "$1" -eq 0 ]; then
  124.             usplash_write "SUCCESS OK" || true
  125.         else
  126.             usplash_write "FAILURE failed" || true
  127.         fi
  128.     fi
  129.  
  130.     log_to_console log_end_msg "$@"
  131.  
  132.     if [ "$COL" ] && [ -x "$TPUT" ]; then
  133.         printf "\r"
  134.         $TPUT hpa $COL
  135.         if [ "$1" -eq 0 ]; then
  136.             echo "[ OK ]"
  137.         else
  138.             printf '['
  139.             $TPUT setaf 1 # red
  140.             printf fail
  141.             $TPUT op # normal
  142.             echo ']'
  143.         fi
  144.     else
  145.         if [ "$1" -eq 0 ]; then
  146.             echo "   ...done."
  147.         else
  148.             echo "   ...fail!"
  149.         fi
  150.     fi
  151.     return $1
  152. }
  153.  
  154. log_action_msg () {
  155.     if log_use_usplash; then
  156.         usplash_write "TEXT $*" || true
  157.     fi
  158.  
  159.     log_to_console log_action_msg "$@"
  160.  
  161.     echo " * $@"
  162. }
  163.  
  164. log_action_begin_msg () {
  165.     log_daemon_msg "$@..."
  166. }
  167.  
  168. log_action_cont_msg () {
  169.     log_daemon_msg "$@..."
  170. }
  171.  
  172. log_action_end_msg () {
  173.     # In the future this may do something with $2 as well.
  174.     log_end_msg "$1" || true
  175. }
  176.